package com.huatai.datadevelop.controller;

import com.huatai.common.api.R;
import com.huatai.datadevelop.service.ApiSuperviseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @author hecai
 * @description: TODO  接口健康监控
 * @date 2023/2/10 9:30
 * @Version 1.0
 */
@Api(value = "接口健康监控模块",tags = "接口健康监控模块")
@RestController
@RequestMapping("/supersion")
public class ApiSuperviseController {

	@Autowired
	private ApiSuperviseService apiSuperviseService;

	/**
	 * 获取异常接口列表  首页滚动  查看异常接口列表
	 *
	 * @return
	 */
	@ApiOperation("查看异常接口列表")
	@GetMapping("/getSupersionAbnormal")
	public R getSupersionAbnormal() {
		return R.data(this.apiSuperviseService.getSupersionAbnormal());
	}

	/**
	 * 统计异常接口数量
	 *
	 * @return
	 */
	@ApiOperation("统计异常接口数量")
	@GetMapping("/getSupersionCount")
	public R getSupersionCount() {
		return R.data(this.apiSuperviseService.getSupersionCount());
	}

	/**
	 * 获取接口自检所有类别
	 *
	 * @return
	 */
	@ApiOperation("获取接口自检所有类别")
	@GetMapping("/getTypeList")
	public R getTypeList() {
		return R.data(this.apiSuperviseService.getTypeList());
	}

	/**
	 * 根据状态获取该统计数据
	 *
	 * @param params
	 * @return
	 */
	@ApiOperation("根据状态获取该统计数据")
	@PostMapping("/getCountDataByType")
	public R getCountDataByType(@RequestBody Map<String, Object> params) {
		return R.data(this.apiSuperviseService.getCountDataByType((Integer) params.get("status")));
	}

	/**
	 * 查询数据
	 *
	 * @param params
	 * @return
	 */
	@ApiOperation("查询数据")
	@PostMapping("/list")
	public R page(@RequestBody Map<String, Object> params) {
		return R.data(this.apiSuperviseService.queryPage(params));
	}
}
